package cn.qn.base;

import lombok.Data;
import org.springframework.data.domain.Page;

import java.io.Serializable;
import java.util.List;

/**
 * @Auther: Bryant
 * @Date: 2018/6/8
 * @Description: 分页查询结果封装
 */
@Data
public class PageVO<T> implements Serializable {

    private static final long serialVersionUID = 2536393504672638428L;
    private PageInfo pageInfo;

        private List<T> Data;

    /**
         * @desc 构建一个分页VO对象
         *
         * @param page 数据库查出来的分页数据列表
         */
        public static <T> PageVO<T> convert(Page<T> page) {
            PageVO<T> pageVO = new PageVO<>();
            PageInfo pageInfo=new PageInfo();
            pageInfo.setPage(page.getNumber());
            pageInfo.setPageSize(page.getSize());
            pageInfo.setTotalPages(page.getTotalPages());
            pageInfo.setTotal(page.getTotalElements());
            pageVO.setPageInfo(pageInfo);
            pageVO.setData(page.getContent());
            return pageVO;
        }

        public static <T> PageVO<T> convert(int page,int size,List<T> data,int total) {
            PageVO<T> pageVO = new PageVO<>();
            PageInfo pageInfo=new PageInfo();
            pageInfo.setPage(page);
            pageInfo.setPageSize(size);
            pageInfo.setTotalPages(total%size>0?total/size+1:total/size);
            pageInfo.setTotal(total);
            pageVO.setPageInfo(pageInfo);
            pageVO.setData(data);
            return pageVO;
        }


}
